// 基于array来创造一个Stack类 好理解 但是有容量上限
class ArrayStack {
    // 数据 结构 = 特定的数据存储 + 行为的组合
    // 栈的容量 n
    constructor(n) {
        this.items = []; // 数据集合 连续存储
        this.n = n; // 容量 栈的上限
        // 栈顶指针 this.count-1
        this.count = 0; // 初始栈为空 this.count是数据数量
    }
    // 行为：
    /**
     * @func 入栈操作
     * @param {*} item 
     * @returns boolean
     */
    push(item) {
        // 判断容量空间是否达到上限
        if (this.count >= this.n) return false;

        this.items[this.count] = item;
        this.count++;
        return true;
    }
    /**
     * @func 出栈操作
     * @param {*} item 
     * @returns null|*
     */
    pop() {
        if (this.count = 0) return null;

        let temp = this.items[this.count - 1];
        this.count--;
        return temp;
    }
}